专利摘要:
METHOD FOR PROVIDING APPLICATION INTEGRATION FOR A SYNCHRONIZATION FRAMEWORK RUNNING ON A COMPUTER DEVICE, COMPUTER DEVICE, AND COMPUTER-READABLE STORAGE DEVICE. The present invention relates to enabling applications to cooperate with a system-level synchronization framework. The synchronization framework can provide file system synchronization between user devices and a cloud storage service. Arbitrary applications on a user's computing device can communicate with the sync framework to temporarily suspend synchronization of a specific file via the sync framework. The application can register functions with the sync framework that the sync framework can activate against suspend sync, continuing to provide system-level access to the file to arbitrary applications and resuming sync.
公开号:BR112015029084B1
申请号:R112015029084-1
申请日:2013-09-21
公开日:2022-01-25
发明作者:Chris Guzak;Marc Wautier;Daniel Fiordalis;Miko Arnab S. Bose;Scott Hoogerwerf;Oded Shekel;Simon Clarke;Balaji Balasubramanyan;Michael Novak
申请人:Microsoft Technology Licensing, Llc;
IPC主号:
专利说明:

BACKGROUND
[0001] In the field of network or cloud computing, services have been developed to provide cloud storage for use by client computers that connect to the cloud. While cloud storage has been deployed in many ways recently, cloud storage has become tightly integrated with the file systems (and operating systems) of client computers. From a user perspective, it has been desirable to provide a cloud archive that appears to have a universal and floating presence in the cloud, as well as on a user's client computing devices that connect to the cloud. One goal has been to allow a file that is stored in the cloud to be read and written by a user's devices that connect to the cloud, as well as, perhaps, software within the cloud. A single-file entity (from the user's perspective) may, in fact, have multiple copies or versions in the cloud and client computers being updated in parallel. To maintain consistency for the file, that is, to keep file content consistent across the cloud and across user devices that connect to the cloud, a file synchronization system or synchronization mechanism can be employed.
[0002] To provide a smooth user experience and transparent coherence, this cloud-based file synchronization is preferably performed at the file system and/or operating system level. This hides the staging work that is often required to maintain synchronization between instances of what is assumed to be the same logical file. This system managed synchronization also frees programmers from the burden of having to code their own bespoke synchronization software.
[0003] However, there may be periods when an application or other software outside of the sync engine and client operating system needs to custom sync or otherwise manage and coordinate the cloud and instances based on clients from a file. For example, concurrent collaborative editing for a word processor may involve sync issues that a system-provided sync engine cannot address. Furthermore, operating system-level or file-system-level synchronization mechanisms have not had the ability to share synchronization-related responsibilities with arbitrary applications. If an application has needed to use a shared cloud file in a way that could conflict or interfere with the sync engine, the only option would be for the application to take full responsibility for the file sync engine.
[0004] Techniques are discussed below for, among other things, allowing a synchronization mechanism to temporarily give away the synchronization of a file and make use of synchronization-related functionality provided by applications. SUMMARY
[0005] The following summary is included not only to introduce some of the concepts discussed in the detailed description below. This summary is not comprehensive and is not intended to delimit the scope of the claimed matter, which is presented by the claims set out at the end.
[0006] The modalities described in this document may involve allowing applications to cooperate with a system-level synchronization framework. The synchronization framework can provide file system synchronization between users' devices and a cloud storage service. Arbitrary applications on a user's computing device can communicate with the sync framework to temporarily suspend synchronization of a specific file through the sync framework. The application can register roles with the sync framework where the sync framework can recover from the suspend sync, continuing to provide system-level access to the file for arbitrary applications and resuming sync.
[0007] Many of the features present will be explained below with reference to the detailed description below considered in connection with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The present description will be better understood from the following detailed description read in light of the accompanying drawings, in which like reference numerals are used to designate like parts in the accompanying description.
[0009] Figure 1 shows a user's devices that share a file that is stored through a cloud.
[0010] Figure 2 shows an example scenario where file synchronization can be problematic.
[0011] Figure 3 shows a synchronization mechanism with an application programming extension interface (API) to coordinate file manipulation activities with any properly coded software.
[0012] Figure 4 shows a process.
[0013] Figure 5 shows another process.
[0014] Figure 6 shows an exemplifying computing device in which the modalities can be deployed. DETAILED DESCRIPTION
[0015] The modalities discussed below refer to providing extensibility for a synchronization mechanism to allow applications to temporarily block the synchronization mechanism of a file, i.e. to exclude the file from synchronization oversight of the synchronization mechanism . Modalities also refer to allowing applications to register functionality with the sync engine that the sync engine can retrieve to, for example, help troubleshoot or provide data from a file that is not being synced.
[0016] The description below will start with an overview of cloud-based file storage shared by multiple devices. The synchronization structure and potential conflicts between the synchronization mechanisms and applications will be described below, followed by an explanation of extensibilities that can be built into the synchronization mechanisms to allow synchronization blocking and the use of application functionality that can assist the mechanism. to perform synchronization and provide access to files that are temporarily not being synchronized.
[0017] Figure 1 shows a user's devices 100, 102 sharing a file 104 that is stored across a variety of at least one cloud 106 and a user computing device 102. The cloud 106 may have a variety of services, not all shown in Figure 1. Cloud 106 may have an account service that manages user accounts or user credentials. The account service can provide a credential for each user. A user can use their credential to access the cloud 106 and various services therein, such as a search engine, an email service, a virtual machine or application hosting service, a storage or file service108, or others. Such cloud services may be accessed using a web browser or other client software on a user's computing device, such as computing device 100. A given user may connect several of their cloud computing devices 106 using same account or credential. In the example in Figure 1, a user has connected both computing device 100 (device 1) and computing device 102 (device 2) with cloud file service 108, thus allowing seamless sharing of the file. file 104.
[0018] In some cases, the cloud service client software a cloud service transparently, as long as authorization from the cloud 106 has been obtained by user credential. For example, user computing device 100 may have a file explorer, system browser, or other user interface for exploring a local file system 110, which is controlled by an operating system 112. Such server-side software client can also connect with file service 108 and allow exploration of files in file service 108 as if they were part of local file system 110. Client-side software can also be running arbitrary applications on devices of user computing 100, 102, or elsewhere.
[0019] Some cloud services allow a file or file storage to be simultaneously stored and accessed on multiple user devices and on the cloud 106. For example, in reference to Figure 1, a file such as file 104 (“file 1”) may be stored locally on file system 110 of user computing device 100. File 104 may also be stored on cloud file service 108. Copy of file 104 on file service 108 may also be provided by file service 108 to other applications on another of a user's devices, such as user computing device 102. Due to the fact that multiple entities are accessing and potentially writing to file 104, a synchronization framework is employed to synchronize the instances or copies of file 104.
[0020] The synchronization structure may include cooperating synchronization mechanisms, such as a synchronization mechanism 114 in the computing user device 100 and a synchronization mechanism 116 in the cloud 106 (which may be behind the file service 108 ). Each sync engine takes local steps to keep a corresponding local copy of file 104 in sync with the other copies of file 104 (note that file 104 represents any arbitrary file). This typically involves a sync engine that receives or detects local updates for its local version of file 104 and propagates those updates to one of the sync engines, which in turn updates its copy of local file 104 so that copies of file 104 are in sync.
[0021] In one embodiment, the file service 108 may act as a central store and coordinator, so that a user's devices cannot directly synchronize with each other. For example, user computing device 102 may exchange synchronization updates with cloud 106, and user computing device 100 may similarly exchange updates with cloud 106. However, computing device 100 and computing device 102 sync with each other indirectly through the broker sync mechanism 116 in file service 108, which effectively propagates one of the user's basic sync updates to the other. The specific algorithms of a sync engine may vary depending on whether it is on the cloud 106 or on a user device.
[0022] In addition to basic sync logic, sync engines 114, 116 may also have logic to handle intermittent loss of network connectivity between cloud 106 and user device 100. For example, when connectivity is not available between user device 100 and cloud 106, application 118 on user device 100 can write edits or updates to its local file 104. Updates during a disconnect should accumulate at both locations until connectivity is re-established. When connectivity is re-established, sync engines 114, 116 may cooperate to try to reconcile their accumulated updates (the copy of file 104 on cloud 106 may also have received updates, perhaps from user device 102 that is still connected to cloud 106) . When file instances 104 cannot be reconciled, local versions 120 and even sub-versions can be created and saved. Deviating versions 120 not reconcilable through the synchronization framework may eventually require user intervention.
[0023] Figure 2 shows an example scenario where file synchronization can be problematic. In this example, application 118 (which represents any arbitrary application) is assumed to have access to both the local instance of the file 104 on the computing user device 100 and access to the copy or cloud instance 106, possibly after obtaining from operating system 112 a Uniform Resource Locator (URL) or other cloud-based file-to-network file manipulation 104. Initially, the sync engine 114 is synchronizing file 104 with cloud 106, as discussed above. During such period, application 118 begins accessing and writing to both the local file copy 104 and the cloud file service copy 108. Such parallel use of file 104 can eventually cause conflicts or interference, potentially corrupting the file 104 or stopping the operation of the sync framework or application 118.
[0024] Figure 3 shows the synchronization mechanism 114 with an application programming extension interface (API) 130 to coordinate file manipulation activities with any properly coded software (represented by application 118) running on the user device 100. An API is not just an example of how the synchronization mechanism 114 can communicate or exchange calls/responses 132 or messages with applications. Other programming techniques such as software interfaces and contracts can be used. Furthermore, while communication with the synchronization mechanism 114 is discussed, the API 130 can be emerged as part of the overall synchronization structure.
[0025] API 130 may include a variety of calls, methods, etc., invoked by arbitrary applications, such as application 118. Such a call may be a sync lock call, which may also specify or be directed to a file , such as file 104. When the ticket is retrieved, say a file 104 by application 118, the sync engine 114 proceeds to stop syncing file 104 with cloud 106. This may involve various preparatory measures, such as applying any updates relevant to file 104, communicate with sync engine 116 in cloud 106 to indicate that the sync framework may be temporarily handing over sync responsibility to file 104. Sync engine 116 may, in turn, apply updates or perform other tasks, such as instructing the 108 cloud file service to flush bits to disk. The synchronization mechanism 114 may respond to the synchronization lock call according to its state. For example, if the local file 104 does not have the ability to be reconciled, perhaps due to loss of network connectivity to the cloud 106, the sync engine 114 may respond to the application 118 accordingly. If a fork (new sub-revision) of the local file 104 is performed, the application 118 can also be informed. In one embodiment, application 118 first opens the local file 104 and/or the cloud-based instance of file 104 in a read-only mode, and when the sync lock call successfully resumes, application 118 then opens file 104 in recording mode. Note that a sync lock is performed at least on the local user device, but can optionally be extended to other user devices, for example to improve handling of file rename and move operations.
[0026] In one embodiment, the application 118 may be coded to operate as a rudimentary continuous file transfer server, which possibly has a data provider 136 (both the merge handler 134 and the data provider 136 can be registered via API 130 by application 118). Operating system 112 may provide a file placeholder system that allows a placeholder to be used in place of an actual file; to applications, a placeholder file looks like a regular file with file properties, openable/closeable, and so on, but the data (content) for the file comes from a source other than the file system. file 1 10. In other words, a placeholder file is an operating system object that is presented as a file, but internally the data that appears to be inside the file comes from a source other than the file storage unit, for example , from an application with a function or client that can flow data to the operating system. In this example, the data provider 136 of application 118 118 flows its content (that is, whatever it did to file 104 after the sync lock was recovered) through file 104 to the operating system and the fluid content is provided, through the file/operating system so that nothing reads the file 104 through the file system. Note that position marker/continuous transfer function is not required for sync lock.
[0027] Although the sync lock is held by application 118, the sync framework does not sync file 104 on users' devices or in the cloud 106. Thus, application 118 is free to deploy its own sync logic, or otherwise otherwise, write to both the on-premises instance and/or the cloud instance without worrying about interfering with the sync structure. For example, application 118 can query the system whether the cloud copy and the local file copy 104 are identical, possibly using its own merge handler 134 or reconciliation logic. As discussed below, the merge handler 134 of the application 118 may be presented via an interface or contract to the sync engine 114 and may be called by the sync engine 114 to perform an application-provided merge; that is, the sync framework can be extended with external sync functionality.
[0028] Eventually, application 118 releases the sync lock. This can be triggered explicitly by the application by its internal logic (eg an application user 1 explicitly closes file 104). Or, a sync lock release may be triggered automatically responsive to an event, such as application 118 being closed or application 118 losing focus, being switched by the user (user switches to another application), a suspension occurrence of system, etc.
[0029] When the sync lock is released, sync engine 114 resumes sync management of file 104. If a placeholder mode is in use as described above, this may involve execution logic to resolve any placeholders of unavailable position. In addition, the sync engine 114 may attempt to sync the file 104, which in turn may trigger hydration of the file 104. The sync engine 114 may contact the data provider 136 or the merge handler 134, and the application 118 is enabled to hydrate the file using the data provider 136. Subsequently, the synchronization engine 114 can check to see if an upload to the cloud 106 of the file 104 is pending. If not, then the sync framework is in steady state with respect to file 104. Even if there is no local update pending, the sync framework may have reason to download some newer cloud updates if the cloud version has changed. In this case (no pending local changes, but newer cloud versions) the cloud version replaces the local file (no conflict). However, if a download is pending, the cloud version can be downloaded (the sync engine does not have to download the cloud version to detect cloud changes, which may be reflected in other available information). If cloud changes are not detected, then again the sync engine 114 is in a stable sync state. Otherwise, the registered merge handler 134 of the application 118 is retrieved by the sync engine 114. If this fails, then some fault handling procedures are triggered, such as forking (versioning) the file 104 or displaying a file interface. user to let the user choose how to resolve the inconsistency.
[0030] Subsequently, referring to Figures 4, 5, and the period sequence shown in Figure 3, initially, at step 160, the sync engine 114 is managing the sync to file 104. Writes to the local and from the cloud by the arbitrary applications through the file system and the cloud, respectively, are synchronized transparently to the applications. At step 162, an arbitrary application such as application 118 may require to perform its own synchronization management for file 104. At step 164 (first period 138) the application issues a synchronization lock request to the synchronization engine 114 and optionally registers its merge handler 134 and/or its data provider 136 (by exchanges with the synchronization mechanism 114). In step 166, the synchronization mechanism grants the synchronization lock request, giving the file synchronization with the cloud.
[0031] At step 168 application 118 takes control of the file, writes to local and/or cloud instances of file 104, updates, perhaps for custom sync, etc. Before a second period 140, a second application (app2) can request the file 104 through the file system, in which case the operating system supplies a placeholder file with content from the data provider 136. In the second period 140 , step 170 occurs, the application 118 ends with the file, and in step 172 it issues a synchronization unlock call to the synchronization engine 114. In step 174 the synchronization engine 114 resumes the synchronization of the file with the cloud, which may involve a 176 of trying to synchronize the file, and possibly activating the merge handler 134 at step 178. The particular order of steps in Figures 4 and 5 is not required and some steps may be omitted.
[0032] To summarize, an arbitrary application may provide synchronization-related services or extensions to a synchronization framework, for example, that might otherwise not be available to the built-in synchronization framework or system. File coherence can be guaranteed while the application is working with the file, behavior conflicts between applications and the synchronization framework can be avoided, and during a synchronization lock other applications can transparently access the file via markers. position (sync framework breaks access to file content). An all-or-nothing approach can be avoided by allowing the application to take full ownership of the files and apply custom synchronization logic. The application can negotiate with the sync framework to identify and acquire (sync lock) these files. A contract, API, implementable application software interface, or similar mechanism can be added to the built-in synchronization framework. The synchronization framework can act as the main synchronization agent although it can be temporarily exempted from this obligation by the application when the application is manipulating the file. The application may indicate that it has the ability to perform smart merges on a given file. When the synchronization framework detects a synchronization conflict, it can then be known that it can delegate conflict resolution to the application.
[0033] Figure 6 shows an example computing device 100 in which the modalities described above can be implemented. Computing device 100 may have one or more displays 266, as well as storage device 262 and processor 264. These elements may cooperate in ways well understood in the computing art. In addition, input devices 268 may be integrated with or in communication with computing device 100. Display 266 may be any variety of devices used to display a signal transmitted by computing devices, including, for example, displays. solid surface, projectors, touch-sensitive surfaces, and more. Computing device 100 can be any form factor or can be embedded in another device. For example, touch-sensitive control panels are often used to control appliances, robots, and other machines. Computing device 100 may be in the form of a handheld device, such as a smart phone, tablet-type computer, game box, commandless server, or the like. [0034] The modalities and features discussed above may be realized in the form of information stored on volatile or non-volatile or device-readable computer-readable devices. It is considered to include at least devices such as optical storage (e.g., compact disc with read-only memory (CD-ROM)), magnetic media, fast read-only memory (ROM), or any other devices for storing digital information in physical matter. The information stored may be in the form of machine-executable instructions (e.g. executable binary code), source code, byte code, or any other information that can be used to enable or configure computing devices to perform the tasks. various modalities discussed above. It is also considered to include at least volatile memory, such as random access memory (RAM) and/or virtual memory that stores information such as central processing unit (CPU) instructions during the execution of a program that performs a modality, as well as as non-volatile media storage information that allows a program or executable to be loaded or run. The modalities and features can be performed on any type of computing device, including handheld devices, workstations, servers, wireless mobile devices, and so on.
权利要求:
Claims (20)
[0001]
1. Method for providing application integration for a synchronization framework running on a computing device that stores a first instance of a file, wherein the computing device is in communication over a network with a cloud service, in that the cloud service stores a second instance of the file, the cloud comprising a remote synchronization mechanism, the method being characterized by the fact that it comprises: over a period of time, allowing updates to the first instance of the file while allowing updates for the second instance; for updates to the first instance and the second instance of the file over the period of time, automatically maintain synchronization between the first instance of the file and the second instance of the file by exchanging, over a network, updates between the synchronization structure and the remote synchronization mechanism, the synchronization framework comprising an interface or API (application programming interface) for allowing arbitrary applications running on the computing device to communicate with the synchronization framework; receiving a sync lock request through the interface or API of a first application running on the computing device, the sync lock request being associated with the file; and in response to the sync lock request, provide a sync lock which comprises temporarily giving the sync between the first and second instances of the file through the sync structure, wherein while the lock request from synchronization is in effect, updating the first and second instances of the file is still allowed.
[0002]
2. Method according to claim 1, characterized in that it still comprises synchronizing the first and second instances of the file through the first application, while the synchronization lock is in effect.
[0003]
3. Method according to claim 2, characterized in that it further comprises issuing a synchronization lock release through the first application.
[0004]
4. Method, according to claim 3, characterized in that it also comprises responding to the synchronization lock release by resuming the maintenance of synchronization between the first and second instances of the file through the synchronization structure.
[0005]
5. Method according to claim 4, characterized in that resuming synchronization maintenance comprises activating, through the synchronization structure, a merge handler registered with the synchronization structure through the first application.
[0006]
6. Method, according to claim 5, characterized in that it still comprises merging the first and second instances of the file through the merge handler.
[0007]
7. Method according to claim 5, characterized in that it still comprises saving a version of the file when, in this case, the merge handler is unable to merge the first instance and the second instance of the file.
[0008]
8. Computing device, characterized in that it comprises: a storage device configured to store files and manage cloud versions of the files; a processor; a sync engine, configured to sync the files with the respective cloud versions of the files, so that changes to the respective cloud versions of the files sync with the files, and changes to the files sync with the respective cloud versions of the files , and configured to exchange updates over a network with a remote synchronization mechanism from a storage service running in a cloud, the storage service managing the cloud versions of files, and configured to receive requests from an application on running on the computing device for a first file sync lock of the files, wherein while a first file sync lock is in effect, the first file update and a cloud version of the same is still allowed, and still configured to respond by stopping auto sync for the first file to each of the sync lock requests, and resume automatic sync for the file when the application starts releasing the corresponding sync locks.
[0009]
9. Computing device, according to claim 8, characterized by the fact that applications modify files through a file system.
[0010]
10. Computing device, according to claim 9, characterized in that the storage service is linked to the computing device with a user credential associated with the computing device.
[0011]
11. Computing device, according to claim 9, characterized in that another computing device also linked to the user credential updates the first file and the storage service that stores the cloud version of the first file synchronizes with the first file on compute device updates made by the other compute device to the cloud version of the first file.
[0012]
12. Computing device according to claim 8, characterized in that when the application is issued a synchronization lock the application is able to write to the first file on the computing device and is able to write to the version in cloud of the first file without interference from the sync engine.
[0013]
13. Computing device according to claim 8, characterized in that when the synchronization engine resumes automatic synchronization of the first file, the synchronization engine downloads at least a part of the cloud version of the first file and determines from there if there are differences between the first file and the cloud version of the first file.
[0014]
14. Computing device according to claim 13, characterized in that when the synchronization mechanism determines that there are differences between the first file and the cloud version of the first file, the synchronization mechanism invokes the application, or a element registered hereby, to reconcile the first file and the cloud version of the first file.
[0015]
15. Computing device, according to claim 14, characterized in that the synchronization mechanism updates the cloud version of the first file according to the reconciliation through the application or the element registered by this means.
[0016]
16. Computer-readable storage device has a process, characterized in that it comprises: accessing a cloud storage service that stores cloud instances of files stored by an operating system of the computing device, the cloud storage service comprising a remote synchronization mechanism; while allowing the updating of each of the files and while allowing the updating of each of the respective cloud instances of the files, automatically syncing the cloud instances of the files with the local instances of the files, respectively, the synchronization performed by an operating system of the computing device and the remote synchronization mechanism exchanging, over a network, updates to the files and the cloud instances of the files, automatic synchronization capable of accommodating arbitrary applications on the computing device that updates the local instances and arbitrary applications on the device compute or other computing devices that update the cloud instances; and allow arbitrary applications to request and waive synchronization locks to control suspension and resumption, by the operating system, of automatic synchronization of files with cloud instances of files, in which if an arbitrary application suspends automatic synchronization of a given file with a corresponding sync lock request, the update of the given file and a cloud instance of the same is still allowed.
[0017]
17. Computer-readable storage device according to claim 16, characterized in that an application specifies a local file for which synchronization is to be suspended.
[0018]
18. Computer readable storage device according to claim 17, characterized in that when the specified local file has synchronization suspended, the application provides continuous data transfer from the local file to the operating system.
[0019]
19. Computer readable storage device according to claim 18, characterized in that when a second application requests the local file while synchronization to the local file is suspended, the operating system obtains data for the local file at from the continuous transfer of data and provides the data to the second application.
[0020]
20. Computer-readable storage device, according to claim 19, characterized in that the second application requests the local file through an operating system file system, the file system managing the local instances of the files.
类似技术:
公开号 | 公开日 | 专利标题
BR112015029084B1|2022-01-25|Method for providing application integration for a synchronization framework running on a computing device, computing device, and computer-readable storage device
JP6309969B2|2018-04-11|Application programming interface for data synchronization in online storage systems
US9460112B2|2016-10-04|Method and apparatus for virtualization of a file system, data storage system for virtualization of a file system, and file server for use in a data storage system
US9244914B2|2016-01-26|Schema versioning for cloud hosted databases
US10540119B2|2020-01-21|Distributed shared log storage system having an adapter for heterogenous big data workloads
BR112013032923B1|2021-08-24|APPARATUS, COMPUTER IMPLEMENTED METHOD AND COMPUTER-READABLE MEDIA TO MANAGE REPLICATED VIRTUAL STORAGE IN RECOVERY SITES
US8977703B2|2015-03-10|Clustering without shared storage
Zheng et al.2018|Wharf: Sharing docker images in a distributed file system
US10515228B2|2019-12-24|Commit and rollback of data streams provided by partially trusted entities
Nicolae2010|BlobSeer: Towards efficient data storage management for large-scale, distributed systems
US9485308B2|2016-11-01|Zero copy volume reconstruction
US11113312B2|2021-09-07|Reliable hierarchical storage management with data synchronization
Yang et al.2016|D^ 2ps: A dependable data provisioning service in multi-tenant cloud environment
US10152493B1|2018-12-11|Dynamic ephemeral point-in-time snapshots for consistent reads to HDFS clients
US10127270B1|2018-11-13|Transaction processing using a key-value store
Agrrawal et al.2012|File system aware storage virtualization management
US20180165319A1|2018-06-14|Atomically Moving Data Elements Between Or Within Linked Data Structures Having No Support For Atomic Moves
US11023178B2|2021-06-01|Implementing coherency and page cache support for a storage system spread across multiple data centers
US10389802B1|2019-08-20|Flexible associativity in multitenant clustered environments
Paulovič et al.2013|Designing a software transactional memory for peer-to-peer systems
Purnachandra Rao et al.2019|HDFS Pipeline Reformation to Minimize the Data Loss
Krishna et al.2014|Improving the performance of read operations in distributed file system
Han2016|Distributed File Systems in Cloudlets
Dun et al.2011|Cynk: A Hybrid Rsync and SSH Filesystem for Cloud Computing
Wadkar et al.2014|Hadoop Concepts
同族专利:
公开号 | 公开日
US20140358860A1|2014-12-04|
CN105378711A|2016-03-02|
US9189533B2|2015-11-17|
RU2644139C2|2018-02-07|
JP2016523400A|2016-08-08|
RU2015151019A|2017-06-01|
WO2014193458A1|2014-12-04|
JP6345770B2|2018-06-20|
BR112015029084A2|2017-07-25|
EP3005156A1|2016-04-13|
BR112015029084A8|2020-03-17|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

AU2003262965A1|2002-08-30|2004-03-19|Arkivio, Inc.|Techniques for moving stub files without recalling data|
CA2414952A1|2002-12-20|2004-06-20|Ibm Canada Limited-Ibm Canada Limitee|Adapting a document repository to support fine-grained change requests, lightweight transactions and asynchronous notifications|
US7743022B2|2003-02-28|2010-06-22|Microsoft Corporation|Method and system for synchronizing data shared among peer computing devices|
US8131739B2|2003-08-21|2012-03-06|Microsoft Corporation|Systems and methods for interfacing application programs with an item-based storage platform|
US8108483B2|2004-01-30|2012-01-31|Microsoft Corporation|System and method for generating a consistent user namespace on networked devices|
US20130104251A1|2005-02-01|2013-04-25|Newsilike Media Group, Inc.|Security systems and methods for use with structured and unstructured data|
US20060242206A1|2005-04-22|2006-10-26|Microsoft Corporation|System and method for peer to peer synchronization of files|
JP5082310B2|2006-07-10|2012-11-28|日本電気株式会社|Data migration apparatus and program|
NZ578689A|2007-02-05|2011-10-28|Moonwalk Universal Pty Ltd|Managing data using only data channel stateless server agents and no stateful middleware|
US8316190B2|2007-04-06|2012-11-20|Waratek Pty. Ltd.|Computer architecture and method of operation for multi-computer distributed processing having redundant array of independent systems with replicated memory and code striping|
US7831558B2|2007-06-22|2010-11-09|Microsoft Corporation|Bi-directional data modification with synchronization|
US7870280B2|2007-11-08|2011-01-11|Align Technology, Inc.|Synchronized viewing of file manipulations|
US8812451B2|2009-03-11|2014-08-19|Microsoft Corporation|Programming model for synchronizing browser caches across devices and web services|
CN101515935B|2009-03-17|2012-07-04|华为终端有限公司|Data synchronization method and server|
US9384063B2|2009-06-18|2016-07-05|Microsoft Technology Licensing, Llc|Eliding synchronization in a concurrent data structure|
US9575985B2|2009-12-07|2017-02-21|Novell, Inc.|Distributed lock administration|
US8503984B2|2009-12-23|2013-08-06|Amos Winbush, III|Mobile communication device user content synchronization with central web-based records and information sharing system|
US8521758B2|2010-01-15|2013-08-27|Salesforce.Com, Inc.|System and method of matching and merging records|
US8595382B2|2010-06-07|2013-11-26|Salesforce.Com, Inc.|System, method and computer program product for performing a synchronization of data|
JP2012174113A|2011-02-23|2012-09-10|Hitachi Ltd|File storage system and storage control method|
US8819471B2|2011-06-03|2014-08-26|Apple Inc.|Methods and apparatus for power state based backup|
US10885060B2|2012-02-28|2021-01-05|International Business Machines Corporation|On-demand file synchronization|
US9678978B2|2012-12-31|2017-06-13|Carbonite, Inc.|Systems and methods for automatic synchronization of recently modified data|US10083184B2|2007-01-07|2018-09-25|Apple Inc.|Widget synchronization in accordance with synchronization preferences|
US9858288B2|2012-08-03|2018-01-02|Egnyte, Inc.|System and method for event-based synchronization of remote and local file systems|
CN104426955B|2013-08-28|2018-05-04|北大方正集团有限公司|The processing method and cloud storage service device of shared file|
US9747166B2|2013-10-10|2017-08-29|Adobe Systems Incorporated|Self healing cluster of a content management system|
US10380076B2|2014-07-21|2019-08-13|Egnyte, Inc.|System and method for policy based synchronization of remote and local file systems|
US9667715B2|2014-11-07|2017-05-30|Sap Se|Method for controlling changes in a computer system|
US10963430B2|2015-04-01|2021-03-30|Dropbox, Inc.|Shared workspaces with selective content item synchronization|
US9922201B2|2015-04-01|2018-03-20|Dropbox, Inc.|Nested namespaces for selective content sharing|
US9852147B2|2015-04-01|2017-12-26|Dropbox, Inc.|Selective synchronization and distributed content item block caching for multi-premises hosting of digital content items|
US10437789B2|2015-04-10|2019-10-08|Egnyte, Inc.|System and method for delete fencing during synchronization of remote and local file systems|
US11144510B2|2015-06-11|2021-10-12|Egnyte, Inc.|System and method for synchronizing file systems with large namespaces|
US10282255B2|2015-07-15|2019-05-07|Microsoft Technology Licensing, Llc|Coordinating file synchronization between a sync engine and another application that supports document collaboration|
US9479567B1|2015-10-29|2016-10-25|Dropbox, Inc.|Synchronization protocol for multi-premises hosting of digital content items|
US10691718B2|2015-10-29|2020-06-23|Dropbox, Inc.|Synchronization protocol for multi-premises hosting of digital content items|
US11128717B2|2015-11-19|2021-09-21|Microsoft Technology Licensing, Llc|Private editing of shared files|
US20170177613A1|2015-12-22|2017-06-22|Egnyte, Inc.|Event-Based User State Synchronization in a Cloud Storage System|
US9537952B1|2016-01-29|2017-01-03|Dropbox, Inc.|Apparent cloud access for hosted content items|
US10936548B2|2016-03-15|2021-03-02|Microsoft Technology Licensing, Llc|File synchronization pausing for individual files|
US10762054B2|2016-07-22|2020-09-01|Microsoft Technology Licensing, Llc|Cloud content states determination logic|
US20180039652A1|2016-08-02|2018-02-08|Microsoft Technology Licensing, Llc|Symbolic link based placeholders|
US10592470B2|2016-08-10|2020-03-17|Microsoft Technology Licensing, Llc|Discovery of calling application for control of file hydration behavior|
US10616327B2|2016-09-20|2020-04-07|Microsoft Technology Licensing, Llc|Policy based hydration behavior in cloud storage synchronization|
US10481781B2|2016-12-30|2019-11-19|Dropbox, Inc.|Presence, access, and seen state for local copies of shared content items|
CN110300101A|2019-06-05|2019-10-01|上海易点时空网络有限公司|Vehicle mounted multimedia interconnected method|
CN113037891A|2021-03-26|2021-06-25|腾讯科技(深圳)有限公司|Access method and device for stateful application in edge computing system and electronic equipment|
法律状态:
2018-11-21| B06F| Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]|
2020-02-11| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]|
2021-07-13| B350| Update of information on the portal [chapter 15.35 patent gazette]|
2021-11-16| B09A| Decision: intention to grant [chapter 9.1 patent gazette]|
2022-01-25| B16A| Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]|Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 21/09/2013, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
申请号 | 申请日 | 专利标题
US13/904,979|US9189533B2|2013-05-29|2013-05-29|Sync framework extensibility|
US13/904,979|2013-05-29|
PCT/US2013/061073|WO2014193458A1|2013-05-29|2013-09-21|Sync framework extensibility|
[返回顶部]